package basis.lokal;

import java.io.Serializable;
import java.util.HashMap;

/**
 * Speichert die Uebersetzung von Deutsch in eine Zielsprache
 * 
 * Datei: Sprache.java                   
 * Datum: 06.11.2011   
 *                  
 * @author Alexander Bredo 
 * @version 0.3
 */
public class Sprache implements Serializable
{
  private static final long serialVersionUID = 7586685354807539495L;
  private HashMap<String, String> uebersetzungListe = 
      new HashMap<String, String> ();
  private String sprache;


  /** 
   * Erstellt ein neues Sprachobjekt mit beliebiger Sprache
   */
  public Sprache (String sprache)
  {
    this.sprache = sprache.toLowerCase ();
  }


  /**
   * Gibt die Uebersetzung zu einem Text
   */
  public String gibUebersetzung (String text) 
      throws IllegalArgumentException
  {
    if (text.isEmpty ())
    {
      throw new IllegalArgumentException (
          "Leere Argumente sind nicht erlaubt.");
    }

    String uebersetzung = this.uebersetzungListe.get (text);
    if (uebersetzung != null)
    {
      return uebersetzung;
    }
    else
    {
      return text;
    }
  }


  /**
   * Fuegt eine neue Uebersetzung hinzu
   */
  public void uebersetzungHinzufuegen (String text, String uebersetzung) 
      throws IllegalArgumentException
  {
    if (text.isEmpty () || uebersetzung.isEmpty ())
    {
      throw new IllegalArgumentException (
          "Leere Argumente sind nicht erlaubt.");
    }

    uebersetzungListe.put (text, uebersetzung);
  }


  /**
   * Loescht eine Uebersetzung
   */
  public void uebersetzungLoeschen (String text) 
      throws IllegalArgumentException
  {
    if (text.isEmpty ())
    {
      throw new IllegalArgumentException (
          "Leere Argumente sind nicht erlaubt.");
    }

    uebersetzungListe.remove (text);
  }

  
  /**
   * Gibt die aktuelle Sprache als String zurueck
   */
  public String gibSprache ()
  {
    return sprache;
  }

}
